//该文件主要用于：①创建路由器。②制订路由规则
import Vue from 'vue'
import VueRouter from 'vue-router'
import About from '../components/About'
import Home from '../components/Home'

//使用插件
Vue.use(VueRouter)

// 第一步：将原始的push保存一份
const originPush = VueRouter.prototype.push
const originReplace = VueRouter.prototype.replace

// 第二步：将VueRouter.prototype.push做增强
VueRouter.prototype.push = function(location,okCallback,errCallback){
	//若使用push的人没有传递：成功的回调，失败的回调
	if(okCallback === undefined && errCallback === undefined){
		return originPush.call(this,location).catch(()=>{})
	}else{
		return originPush.call(this,location,okCallback,errCallback)
	}
}

// 第三步：将VueRouter.prototype.replace做增强
VueRouter.prototype.replace = function(location,okCallback,errCallback){
	//若使用push的人没有传递：成功的回调，失败的回调
	if(okCallback === undefined && errCallback === undefined){
		return originReplace.call(this,location).catch(()=>{})
	}else{
		return originReplace.call(this,location,okCallback,errCallback)
	}
}


//创建路由器，并制订路由规则
const router = new VueRouter({
	routes:[ //该数组用于存放一组一组的路由规则
		{
			path:'/about', //路径
			component:About //组件
		},
		{
			path:'/home', //路径
			component:Home //组件
		}
	] 
})

//暴露路由器
export default router